1. Parity mechanism

    • PCI uses the PAR signal to maintain even parity across most signals.
    • Rule:
      • If the number of “1” bits during the address/data phase is odd,
      • The master sets PAR so the total becomes even.
  2. Error detection

    • The target device checks the received data + PAR.
    • If parity doesn’t match (not even), an error is detected.
    • Note: Parity only detects errors if an odd number of bits are corrupted.
  3. Data phase error (recoverable)

    • If an error occurs during data transfer, the device asserts PERR# (Parity Error).
    • Usually recoverable → e.g., just retrying the transaction (like re-reading memory) may succeed.
    • Handled in software, since PCI doesn’t have automatic recovery.
  4. Address phase error (serious)

    • If an error occurs during the address phase, the address is corrupted.
    • This is not recoverable, because:
      • The system can’t know what the corrupted address became.
      • The wrong device(s) may have responded.
    • In this case, SERR# (System Error) is asserted.
  5. System response to SERR#

    • Typically invokes the system error handler.
    • In older PCs:
      • Both PERR# and SERR# were connected to the South Bridge error logic.
      • This triggered an NMI (Non-Maskable Interrupt) to the CPU.
      • Often the system simply halted → leading to the infamous “Blue Screen of Death.”